//定义日志消息类,进行日志中间信息存储:
//1.日志输出时间      用于过滤日志输出时间
//2.日志等级       用于日志过滤分析
//3.源文件名称    
//4.源代码行号      用于定位错误代码的位置
//5.线程ID    用于过滤出错的线程
//6.日志主体消息   
//7.日志器名称   (支持多日志器的同时使用)

#ifndef __M_MSG_H__
#define __M_MSG_H__

#include"level.hpp"
#include"util.hpp"
#include<thread>


namespace zllog
{
    struct LogMsg
    {
        time_t _ctime;  //日志产生的时间戳
        LogLevel::value _level; //日志等级
        size_t _line; //行号
        std::thread::id _tid; //线程ID
        std::string _file; //源码文件名
        std::string _payload; //有效消息数据
        std::string _logger; //日志器名称

        LogMsg(LogLevel::value level,const std::string file,size_t line,\
            const std::string msg,const std::string logger)
            :_ctime(util::Data::now()),
             _level(level),
             _tid(std::this_thread::get_id()),
             _file(file),
             _line(line),
             _payload(msg),
             _logger(logger)
             {}
    };

};

#endif